package com.basker.pisces.core.meta;

import java.util.Collection;
import java.util.List;

import com.basker.pisces.core.IDataContract;

/**
 * 集合字段
 *
 * @author hangwen
 */
public interface ICollectionField extends IField {

    /**
     * 返回集合，这里返回返回值不可以为null,没有数据的话返回空集合
     */
    Collection<Object> getValue(Object dataObject);

    /**
     * 获取外键字段的描述
     *
     * @return
     */
    String getFkFieldDescription();

    /**
     * 获取集合项关联的对象元信息
     *
     * @return
     */
    IDataObjectMeta getItemObjectMeta();

    /**
     * 获取对象在当前集合中删除的对象
     *
     * @param parentDataObject
     * @return
     */
    List<IDataContract> getRemovedObjects(Object parentDataObject);
}
